<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style>
			pre{
				font-size: 20px;
			}
		</style>
	</head>
	<body>
		<div id="box">
			
		</div>
		<script>
			/*
			call
			apply
			bind
			
			call,apply至少有一个参数(第一个参数:this指向的新对象)
			call,所有参数都用逗号隔开
			apply,将除去第一个参数外,将其他所有参数放入数组
			
			bind 和call一样,但返回的是函数,需要加(),手动执行
			
			
			改变this指向
			
			
			1.this 全局调用执行window
			2.dom.onclick中this指向这个dom
			3.在对象的方法内,this指向这个对象本身
			
			
			*/
			
			var user="kky",age=18;
			// console.log(window);
			var obj={
				user:"培华",
				age:this.age,
				say:function(fm,to){
					console.log("00this:",this);
					console.log(this.user,"年龄",this.age,"来自",fm,"去往",to);
				}
			}
			
			obj.say();
			
			fgx();
			
			var obj2={
				user:"孙庆阳",
				age:24
			}
			
			obj.say.call(obj2,"东土大唐","大雷音寺");//
			fgx();
			obj.say.apply(obj2,["大雷音寺","女儿国"]);
			fgx();
			obj.say.bind(obj2,"女儿国","大唐")();
			
			
			
			
			
			
			function fgx(str=""){
				console.log("this:",this);
				console.log(str+"-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=");
			}
		</script>
	</body>
</html>
